package com.example.dw.service;

import com.example.dw.dto.*;
import com.example.dw.entity.Order;

import java.util.List;
import java.util.Map;

/**
 * 订单服务接口
 * @author system
 * @since 2024-01-01
 */
public interface OrderService {

    /**
     * 获取用户所有订单
     */
    Map<String, Object> getAllOrders(Integer userid, OrderQueryDTO queryDTO);

    /**
     * 获取用户所有订单（Web端）
     */
    Map<String, Object> getOrdersWeb(Integer userid, OrderQueryDTO queryDTO);

    /**
     * 创建订单并发起支付
     */
    Map<String, Object> pay(Integer userid, OrderCreateDTO createDTO);

    /**
     * 创建订单并发起支付（Web端）
     */
    Map<String, Object> payWeb(Integer userid, OrderCreateDTO createDTO);

    /**
     * 根据订单ID获取订单详情
     */
    Order getOrderById(Integer userid, Integer orderid);

    /**
     * 支付回调通知处理
     */
    Map<String, Object> paymentNotify(PaymentNotifyDTO notifyDTO);

    /**
     * 查询微信支付订单状态
     */
    Map<String, Object> getWCOrder(String reqsn);

    /**
     * 继续支付
     */
    Map<String, Object> continuePay(Integer userid, OrderPayDTO payDTO);

    /**
     * 创建订单
     */
    Order createOrder(Integer userid, OrderCreateDTO createDTO);

    /**
     * 处理订单过期
     */
    void processExpiredOrders();
} 